package com.wicket.okrbff.biz.service;

import com.wicket.okrbff.biz.service.dto.req.*;
import com.wicket.okrbff.biz.service.dto.res.*;
import org.springframework.web.multipart.MultipartFile;
import com.wicket.okrframework.integration.FwBaseCommonClient;
import com.wicket.okrframework.integration.dto.ArchiveSingleDataRespDto;
import com.wicket.okrframework.integration.dto.ArchiveSingleDataReqDto;
import com.wicket.okrbff.common.exception.Assert;
import com.wicket.okrframework.integration.dto.UndoArchiveBatchSingleDataRespDto;
import com.wicket.okrframework.integration.dto.UndoArchiveBatchSingleDataReqDto;
import com.wicket.okrframework.integration.dto.ReleaseSingleDataRespDto;
import com.wicket.okrframework.integration.dto.ReleaseSingleDataReqDto;
import com.wicket.okrframework.integration.dto.AddUploadFileRespDto;
import com.wicket.okrframework.integration.dto.AddUploadFileReqDto;
import com.wicket.okrframework.integration.FwBaseDivineDataClient;
import com.wicket.okrframework.integration.dto.PutSpaceInfoToRedisRespDto;
import com.wicket.okrframework.integration.dto.PutSpaceInfoToRedisReqDto;
import cn.hutool.core.bean.BeanUtil;
import java.util.stream.Collectors;
import com.wicket.okrbff.common.util.CommonFunctionHelper;
import com.wicket.okrbff.common.dto.TreeNode;
import java.util.ArrayList;
import java.util.List;
import com.wicket.okrframework.integration.dto.UpdateSortNumRespDto;
import com.wicket.okrframework.integration.dto.UpdateSortNumReqDto;
import com.wicket.okrframework.integration.dto.QueryFrontPublicInfoListRespDto;
import com.wicket.okrframework.integration.dto.QueryFrontPublicInfoListReqDto;
import com.wicket.okrframework.integration.dto.DeleteSingleDataRespDto;
import com.wicket.okrframework.integration.dto.DeleteSingleDataReqDto;
import com.wicket.okrframework.integration.dto.ArchiveBatchSingleDataRespDto;
import com.wicket.okrframework.integration.dto.ArchiveBatchSingleDataReqDto;
import com.wicket.okrframework.integration.dto.BatchUpdateSortNumRespDto;
import com.wicket.okrframework.integration.dto.BatchUpdateSortNumReqDto;
import com.wicket.okrframework.integration.dto.ObjAttributeIdDto;

/**
 * @author ：
 * @date ：
 *
 * 
 * @version 1.0
 */
public interface CommonService {
    /**
   * B查询前端公共信息列表（公共）
   */
    BffQueryFrontPublicInfoListRespDto queryFrontPublicInfoList(BffQueryFrontPublicInfoListReqDto reqDto);

    /**
   * B查询空间框架信息前端缓存（公共）
   */
    BffQueryFrameInfoFrontCacheDetailRespDto queryFrameInfoFrontCacheDetail(BffQueryFrameInfoFrontCacheDetailReqDto reqDto);
    //


    /**
     * 图片上传
     *
     * @param scope
     * @param use
     * @param spaceId
     * @param file
     * @return
     * @throws Exception
     */
    String uploadImage(String storagePath, String use, String file,boolean useOss) throws Exception;


    /**
     * 正常图片上传
     *
     * @param use
     * @param file
     * @return
     * @throws Exception
     */
    String uploadNoramlImage(String storagePath, String use,MultipartFile file,boolean useOss) throws Exception;

    /**
   * B存档批次下单条数据（公共）
   */
    BffArchiveBatchSingleDataComRespDto archiveBatchSingleDataCom(BffArchiveBatchSingleDataComReqDto reqDto);

    /**
   * B修改排序（公共）
   */
    BffUpdateSortNumComRespDto updateSortNumCom(BffUpdateSortNumComReqDto reqDto);

    /**
   * B发布单条数据（公共）
   */
    BffReleaseSingleDataComRespDto releaseSingleDataCom(BffReleaseSingleDataComReqDto reqDto);

    /**
   * B撤销存档批次下单条数据（公共）
   */
    BffUndoArchiveBatchSingleDataComRespDto undoArchiveBatchSingleDataCom(BffUndoArchiveBatchSingleDataComReqDto reqDto);

    /**
   * B批量修改排序（公共）
   */
    BffBatchUpdateSortNumRespDto batchUpdateSortNum(BffBatchUpdateSortNumReqDto reqDto);

    /**
   * B删除单条数据（公共）
   */
    BffDeleteSingleDataComRespDto deleteSingleDataCom(BffDeleteSingleDataComReqDto reqDto);

    /**
   * B存档单条数据（公共）
   */
    BffArchiveSingleDataComRespDto archiveSingleDataCom(BffArchiveSingleDataComReqDto reqDto);

    /**
   * B查询城市列表
   */
    BffQueryQueryCityListListRespDto queryQueryCityListList(BffQueryQueryCityListListReqDto reqDto);

    /**
   * B上传附件（公共）
   */
    BffAddUploadFileRespDto addUploadFile(BffAddUploadFileReqDto reqDto);

    /**
   * B1-2上传组织架构模板
   */
    BffAddUploadOrgTemplateRespDto addUploadOrgTemplate(BffAddUploadOrgTemplateReqDto reqDto);
}
